[실기] (PART 1) 요구사항
NOTE
정보처리기사 실기 PART 1 — 소프트웨어 생명주기, 개발 방법론, 아키텍처/디자인 패턴, 요구공학 등 요구사항 관련 핵심 개념 정리.
소프트웨어 생명주기 모델 순서
- 요구사항분석 → 설계 → 구현 → 테스트 → 유지보수
소프트웨어 생명주기 모델 종류
- 폭포수모델 ( 오래됨 )
- 프로토타이핑 모델 (프로토타입 구현)
- 나선형 모델 ( 위험 최소 )
- 반복적 모델 ( 구축 대상 나누어 병렬적 개발 후 통합 )
소프트웨어 개발 방법론 종류
- 구조적 방법론 (분할과 정복, 나씨-슈나이더만)
- 정보공학방법론 (정보시스템 개발, 대형프로젝트 수행)
- 객체지향 방법론 (객체 기본 단위 )
- 컴포넌트기반 방법론 ( 컴포넌트 조립 )
- 애자일 방법론 ( 사람 중심 )
- xp ( 짝프로그래밍, 테스트기반개발, 리팩토링, 메타포어(고객-개발자 소통))
- 스크럼 ( 백로그(요구사항) → 스프린트 → 스크럼 (미팅-마스터-회고) → 번다운차트(남은 백로그 그래픽적 표현)
- 린 (도요타-7가지원칙)
- 제품 계열 방법론 ( 특정 제품 적용 , 영역 공학 / 응용 공학 )
객체지향분석방법론
- 객체지향구성요소
- 클래스(추상화), 객체(식별가능 대상), 메서드(객체 사용 방법), 메시지(객체간 상호작용), 인스턴스(실형 객체), 속성(데이터 단위별 정리)
- 객체 지향 기법
- 캡슐화(경계)
- 상속성 (물려받음)
- 다형성 (오버로딩/오버라이딩)
- 추상화 (추상클래스)
- 정보은닉 (공개 인터페이스를 통해서만 접근 가능)
- 관계성
- 연관화 : is-member-of (비계층적 관계성)
- 집단화 : is part of (관련있는 여러개 묶음)
- 특수화 : is a (하위 클래스에서 나름대로 수정)
- 분류화 : is instance of (공통 속성)
- 일반화 : is a (상위클래스 상속받음)
- 객체지향설계원칙 (SOLID)
- SRP(단일 책임), OCP(개방 폐쇄 원칙), LSP(리스코프 치환 원칙), ISP(인터페이스 분리), DIP(의존성 역전)
- 객체지향 분석 방법론 종류
- OOSE (야콥슨)
- OMT (럼바우 - 객 동 기)
- 객 - er다이어그램
- 동 - 상태다이어그램
- 기 - 자료흐름도
- OOD (부치)
프로젝트 관리 3대 요소
- 사람, 문제, 프로세스
비용산정 모형
- 하향식산정방법
- 전문가 판단, 델파이기법
- 상향식 산정방법
- COCOMO, LOC, 푸트남 모형, FP(기능점수) 모형
- COCOMO → organic (5만), semi detached(30만), embeded(30만)
- COCOMO, LOC, 푸트남 모형, FP(기능점수) 모형
일정관리 모델 종류
- 주공정법(CPM)
- PERT (비관치, 중간치, 낙관치 추정방식 이용)
- 중요연쇄프로젝트관리 (CCPM)
소프트웨어 아키텍처 4+1뷰
- 논리뷰 (요구사항이 어떻게 제공되는지 설명)
- 유스케이스뷰 (사용자, 설계자)
- 프로세스뷰 (비기능적인 속성 → 자원 효율적사용, 병행실행, 비동기 표현한 뷰)
- 구현뷰 (정적인 소프트웨어 모듈 구성)
- 배포뷰(아키텍처에 어떻게 배포되는가 매핑해서 보여줌)
소프트웨어 아키텍처 패턴유형
- 계층화 패턴
- 서버-클라이언트 패턴
- 파이프 패턴 (컴포넌트 재사용성 좋음)
- 브로커 패턴 (컴포넌트 원격서비스 실행을 통해 상호작용 가능, 컴포넌트간의 통신)
- 모델 - 뷰 - 컨트롤러 패턴 (MVC)
소프트웨어 아키텍처 비용 평가모델 종류
- SAAM : 경험이 없는 조직에서 사용
- ATAM : 이해상충관계까지 고려
- CBAM : ATAM 기반
- ADR : 응집도 평가
- ARID : 전체가 아닌 특정부분 집중
디자인패턴
- 생성패턴
- 빌더 : 객체 생성, 표현 방법 분리
- 프로토타입 : 원형 복사 후 필요한 부분만 수정
- 팩토리 메서드 : 상위클래스에서 인터페이스 정의, 하위클래스에서 인스턴스 생성
- 추상화 팩토리 : 구체적인 클래스에 의존 x, 연관되거나 의존적인 객체들의 조합
- 싱글톤 : 전역변수 사용x, 생성된 객체를 어디서든지 참조 가능
- 구조패턴
- adapter : 클래스 재사용
- 브릿지 : 추상층을 분리
- composite : 객체들의 관계 = 트리구조
- decorator : 기존 구현 클래스에 기능 추가
- facade : 오류에 대해 단위별 확인 가능
- flyweight : 클래스 경량화 목적
- proxy : 실체 객체에 대한 대리 객체
- 행위패턴
- meditator : 중재자
- interpreter : 해석
- iterator : 복잡 개체 원소를 순차적 접근
- Template Method : 코드양을 줄이고 유지보수 용이
- observer : 객체가 바뀌면 의존하는 다른 객체들에게 연락이 감 (1:N 의존)
- state : 상태에 따라 변경
- Visitor : 처리기능 분류하여 별도의 클래스를 만들어서 사용
- command : 실행될 기능을 캡슐화
- startegy : 같은 알고리즘을 하나의 클래스로 캡슐화
- memento : Undo 기능
OSI 7계층
- 응용계층 : 응용서비스 연결
- 표현계층 : 데이터 압축, 암/복호화
- Chain of Responsibility : 한개의 요청을 2개이상의 객체에서 처리
- 세션계층 : 동기제어, 연결접속
- 전송계층 : 신뢰성 통신
- 네트워크계층 : 데이터 전송 경로 제공
- 데이터링크 계층 : 전송오류 제어
- 물리계층 : 0,1 비트정보 회선 보냄
요구공학 프로세스
- 도출 → 분석 → 명세 → 확인 및 검증 (도분명확)
요구사항 명세 단계
- 비정형 명세 기법 : 자연어 기반
- 정형 명세 기법 : 수학적 원리
요구사항 도출 단계
- 인터뷰, 브레인스토밍, 롤플레잉 (역할), 워크숍(단기간 집중적인 노력), 설문조사, 델파이 기법
요구사항 확인 및 검증 주요기법
- 요구사항검토
- 정형기술검토활용
- 동료검토
- 워크스루 ( 회의 전 배포)
- 인스펙션 (다른 팀이 검사)
- 프로토타이핑 활용
- 모델검증
- 테스트 케이스
- CASE 도구 활용 (자동화된 일관성 분석)
- 베이스라인
- 요구사항추적표(RTM) : 개발단계별 최종 산출물 변경 여부 확인